package com.hdl.design.pattern.strategy;

/**
 * 类名 Context
 * 描述 Context类，用一个ConcreteStrategy来配置，维护一个对Strategy对象的引用。
 *
 * @author hedonglin
 * @version 1.0
 * @date 2019/9/22 9:48
 */
public class Context {
    /**
     * 策略对象
     */
    private Strategy strategy;

    /**
     * 构造函数传入策略
     * @param strategy 策略
     */
    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    /**
     * 上下文接口，根据具体的策略对象，调用其算法的方法
     */
    public void contextInterface(){
        strategy.algorithmInterface();
    }
}

